第三天了,今天沒有圖可以放,難過,今天就如題介紹變數吧。
Go的變數宣告格式與常見的語言比較不同,宣告方式如下:
var [名稱][類別]
var a int
var b string
var c float64
var flag bool
var array []string
var a,b,c int
var(
a int
b string
c float64
)
func main() {
var name string = "MingZhe"
var (
height int = 170
weight int = 75
)
fmt.Println(name, "information:")
fmt.Println("height:", height, "cm")
fmt.Println("weight:", weight: "kg")
}
輸出:
MingZhe info:
Height: 170 cm
Weight: 75 kg
最常使用的宣告方式,只能在function
中使用,宣告出的變數屬於區域變數
function main() {
foo := "Hello"
bar := 100
// 也可以簡寫成
foo, bar := "Hello", 100
}
會發現這種宣告方式時沒有一併宣告型態,使因為Go本身有型別推導功能,因此宣告時也可省略型態
型別推導:
若沒有指定資料型別,編譯器會根據賦值自動推匯出確定的資料型別
Go本身有內建多重賦值,在做變數交換時可以不用宣告temp
a := 1
b := 2
a, b = b, a
// a = 2
// b = 1
可使用「_
」佔位置,省略掉不需要的資料,使用方式如下
func test() (string, string) {
return "X", "Y"
}
func main() {
var a, _ = test() //只取得第一個回傳變數,忽略第二個回傳的變數
fmt.Println(a) //X
}
一開始不是很懂這個的概念,但習慣了之後發現滿好用的ˊˇˋ
常數是指在開發或編譯期間就定義好的值,在執行期間不能被修改。
Go語言中的常量使用關鍵字 const
定義,用於存儲不會改變的數據,常量是在編譯時被創建的,即使定義在函數內部也是如此,並且只能是bool
、數字型(int
、float
和complex
)和string
。
// 單一宣告
const pi = 3.141592
const e = 2.718281
// 多重宣告
const (
pi = 3.141592
e = 2.718281
)
宣告多個常數時,省略常數值的話會使用前一個的型別和數值,以下為範例
const (
a = 1
b
c = 2
d
)
// 1 1 2 2
常數計數器,可以使用 iota
初始化,它用於生成一組以相似規則初始化的常量,但是不用每行都寫一遍初始化表達式。在一個 const
聲明語句中,在第一個聲明的常量所在的行,iota
將會被置為 0,然後在每一個有常量聲明的行+1
,也可自訂初始值及要加的量。
const (
Sunday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
// 0 1 2 3 4 5 6
const (
Sunday = iota*2
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
// 0 2 4 6 8 10 12
耶,今天就介紹到這邊,明天再來介紹Go常見的型態,以下是參考資料
GOLANG - CONST 與關鍵字 IOTA 介紹
https://hoohoo.top/blog/golang-const-with-keyword-iota-introduction/